home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #1 / Amiga Plus 1995 #1.iso / fish-disketten / fish_691-700 / d695 / icalc / scripts / bern.ic < prev    next >
Text File  |  1994-12-13  |  487b  |  26 lines

  1. # Bernoulli number function
  2. #
  3. # B(n) takes INTEGRAL values, and returns the nth Bernoulli number, with
  4. # precision better than 6e-8.
  5. # From "Atlas of Functions", section 4:8
  6. #
  7. # mws, February 1992.
  8.  
  9. func B(n) = {
  10.     local fv, gv, factn
  11.  
  12.     if (frac(n/2) != 0) {
  13.         n = n-2
  14.         fv = (sgn(n)-1)/4
  15.     } else {
  16.         fv = 1
  17.         if (n != 0) {
  18.             factn = fact(n)
  19.             gv = (n+1)*factn/(fact(n/2)*2^(n/2))
  20.             fv = (fv+3^-n)*factn/(PI^n*(2^n-1))
  21.             fv = 0.5+floor(2*fv*gv)
  22.             fv = fv*(4*frac(n/4)-1)/gv
  23.         }
  24.     }
  25. }
  26.